function B = JGP_precoder(H_eff, P_T, alpha)
% JGP_PRECODER 联合组处理基带预编码器（公式21-22）
%   输入：
%     H_eff: [K×b]有效信道矩阵
%     P_T: 总发射功率
%     alpha: 正则化参数
%   输出：
%     B: [b×K]基带预编码矩阵

    % ========== 1. 参数验证 ==========
    [K, b] = size(H_eff);
    if nargin < 3
        alpha = 1/K; % 默认正则化参数
    end
    
    % ========== 2. RZF预编码矩阵计算（公式21） ==========
    % 计算W = (H_eff^H H_eff + KαI_b)^{-1}
    W = inv(H_eff' * H_eff + K * alpha * eye(b));
    
    % 计算B = H_eff^H W
    B = W * H_eff';
    
    % ========== 3. 功率归一化（公式22） ==========
    % 计算功率缩放因子
    pow = real(trace(H_eff * W.^2 * H_eff'));
    epsilon = sqrt(P_T / pow);
    
    % 应用功率约束
    B = epsilon * B;
    
    % ========== 4. 正交性验证 ==========
%     validate_orthogonality(B, H_eff);
end